////有两种字母，一种是小写字母，一种是大写字母，而每个小写字母都可以和一个大写字母配对，现在给定一个字符串，并可以执行至多不超过k次的操作，
////每次操作可以把一个小写字母变成大写字母，也可以把一个大写字母变成小写字母，小瑞想知道最多可以有多少对大小字母可以配对。
////
////A可以和a配对，但不可以和b配对，每种大写字母或者小写字母只能配对其对应的小写字母或者大写字母。
////
////输入描述 :
////第一行输入两个整数n, k分别表示字符串长度和操作次数。第二行输入字符串
////输出描述 :输出答案
////
////示例1
////输入
////复制
////11 2
////aAaaBACacbE
////输出
////复制
////5
//
//
//#define _CRT_SECURE_NO_WARNINGS
//
//#include <iostream>
//#include <cstring>
//#include <algorithm>
//
//using namespace std;
//const int N = 2e5 + 10;
//int mincase[N], maxcase[N];
//
//
//int main()
//{
//	int n, k;
//	cin >> n >> k;
//	string s;
//	cin >> s;
//	for (int i = 0; i < n; i++)
//	{
//		if (s[i] >= 'a' && s[i] <= 'z') mincase[s[i]-'a']++;
//		if (s[i] >= 'A' && s[i] <= 'Z') maxcase[s[i]-'A']++;
//	}
//	int cnt = 0;
//	for (int i = 0; i < 26; i++)
//	{
//		int x = mincase[i];
//		if (mincase[i] > maxcase[i]) x = maxcase[i];
//		cnt += x;
//		mincase[i] -= x;
//		maxcase[i] -= x;
//	}
//	while (k--)
//	{
//		for (int i = 0; i < 26; i++)
//		{
//			if (mincase[i] > 1 || maxcase[i] > 1)
//			{
//				if (mincase[i] > maxcase[i])  mincase[i] -= 2;
//				else maxcase[i] -= 2;
//				cnt += 1;
//			}
//			else continue;
//		}
//	}
//	printf("%d\n", cnt);
//}